package com.corpgovernment.organization.service;

import com.corpgovernment.api.organization.model.org.request.InitPayTypeRequest;
import com.corpgovernment.organization.entity.db.MbOrgPayType;

import java.util.List;

/**
 * 支付方式service接口
 *
 * @author yujue.wang
 */
public interface IOrgPayTypeService {
    /**
     * 保存
     *
     * @param mbOrgPayType
     * @return
     */
    boolean save(MbOrgPayType mbOrgPayType);

    /**
     * 批量保存支付方式
     * @param list
     */
    void batchSavePayType(List<MbOrgPayType> list);

    /**
     * 批量更新
     *
     * @param orgIds
     * @param payType
     * @param site
     * @return
     */
    boolean batchUpdate(List<String> orgIds, String payType, String site);

    /**
     * 查询支付方式
     *
     * @param orgId
     * @param site
     * @return
     */
    List<MbOrgPayType> findByOrgId(String orgId, String site);

    List<MbOrgPayType> findPayTypeList(String orgId, String site,String corpPayType);

    List<MbOrgPayType> findByOrdId(String orgId);

    List<MbOrgPayType> findOrgPayTypeByOrgId(String orgId);

    /**
     * 查询组织的支付方式
     *
     * @param orgIds
     * @param site
     * @param paytype
     * @return
     */
    List<MbOrgPayType> listByOrgIds(List<String> orgIds, String site, String paytype, String supplierId);

    /**
     * 删除组织的支付方式
     *
     * @param orgIds
     * @param type
     * @param site
     * @param supplierId
     * @return
     */
    boolean setPPayByOrgIds(List<String> orgIds, String type, String site, String supplierId);

    /**
     * 删除组织的支付方式
     *
     * @param orgIds
     * @param type
     * @param site
     * @param supplierId
     * @param updateDeleteStatus 是否是设置delete状态
     * @return
     */
    boolean delete(List<String> orgIds, String type, String site, String supplierId, boolean updateDeleteStatus);
    /**
     * 删除组织的支付方式
     *
     */
    boolean deletePayType(String orgId, String corpPayType, String payType, String site);
    void initPayType(InitPayTypeRequest initPayTypeRequest);
}
